package com.mybatis.crudservice.tools;

import com.mybatis.crudservice.exceptions.OrmException;
import static com.mybatis.crudservice.enums.ExceptionType.ORMGET;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;

/**
 * @ 描 述 : 实体服务工具类
 * @ 作 者 : 一念〃
 * @ 时 间 : 10:43 2019/6/8
 * @ 备 注 :
 */
public class EntityUtils {

    /**
     * 调用get方法获取实体类的值
     * @param field
     * @param clazz
     * @param entity
     * @return
     */
    public static Object getValue(Field field, Class clazz, Object entity) {
        try {
            return new PropertyDescriptor(field.getName(), clazz).getReadMethod().invoke(entity, null);
        } catch (Exception e) {
            throw new OrmException(ORMGET.getMessage() + " -> 类：" + entity + "-> 字段：" + field.getName(), e);
        }
    }

}
